<?php
namespace app\admin\model;

use think\Model;
/*旧数据
class Term extends Model
{
		public function selectAll()
	{
		$select_all = $this->select();
		return $select_all;
	}
}
 */
class Base extends Model
{
    /**
     * 循环结果集，将某一列由json转为数组
     * @param array $list     待处理的结果集
     * @param mixed $field    需要处理的列名(Str or Arr)
     * @return array
     */
    protected function forJsonDecode($list, $field, $fieldKey=0)
    {
        //解析列名参数
        if(is_array($field)){
            foreach($field as $fieldKey => $fieldVo){
                $list = $this->forJsonDecode($list, $fieldVo, $fieldKey);
            }
            return $list;
        }
        if(is_int($fieldKey))
            $fieldKey = $field;

        //解析结果项
        if(isset($list[$fieldKey])){
            $list[$field] = json_decode($list[$fieldKey], true);
            return $list;
        }
        if(!is_array($list))
            return false;

        //循环处理结果集
        foreach($list as &$vo){
            $vo = $this->forJsonDecode($vo, $field, $fieldKey);
        }
        unset($vo);
        return $list;
    }

    /**
     * 追加json元素，在json结尾追加一个元素
     * @param string    $json   待追加元素的json
     * @param mixed     $key    要追加的元素键名，或元素列表
     * @param array     $item   要追加的元素
     * @return string
     */
    protected function jsonAppend($json, $key, $item=[])
    {
        if(is_array($key)){
            foreach($key as $vokey=>$item){
                $json = $this->jsonAppend($json, $vokey, $item);
                if($json === false)
                    return false;
            }
            return $json;
        }
        $jsonArr = json_decode($json, true);
        //检测是否有冲突
        if(!empty($jsonArr[$key]))
            return false;
        //$jsonArr = array_merge($jsonArr, [$key=>$item]);
        $jsonArr[$key]=$item;
        $json = json_encode($jsonArr);
        return $json;
    }
	
}

